//#include <iostream>
//#include "MySQLClient.h"
//
//using namespace std;
//
//MysqlClient::MysqlClient() {
//	m_session = NULL;
//}
//
//MysqlClient::~MysqlClient() {
//	if (m_session != NULL) {
//		delete m_session;
//	}
//}
//
//bool MysqlClient::connect(const string& host, const string& user, const string& password, const string& database, int port) {
//	try {
//		m_session = new mysqlx::Session(host, port, user, password);
//		m_session->sql("use " + database).execute();
//		return true;
//	}
//	catch (sql::SQLException& e) {
//		cerr << "Connection failed: " << e.what() << endl;
//		return false;
//	}
//	catch (...) {
//		cerr << "Unknown exception occurred in connect()" << endl;
//		return false;
//	}
//}
//
//vector<vector<string>> MysqlClient::query(const string& sql) {
//	vector<vector<string>> results;
//	try {
//		auto resultset = m_session->sql(sql).execute().getResult();
//
//		while (resultset->hasNext()) {
//			auto row = resultset->next();
//			vector<string> values;
//
//			for (int i = 0; i < row->getColumnCount(); ++i) {
//				values.push_back(row->getString(i));
//			}
//
//			results.push_back(values);
//		}
//
//		return results;
//	}
//	catch (sql::SQLException& e) {
//		cerr << "Query failed: " << e.what() << endl;
//		return results;
//	}
//	catch (...) {
//		cerr << "Unknown exception occurred in query()" << endl;
//		return results;
//	}
//}
//
//bool MysqlClient::insert(const string& table, const vector<string>& columns, const vector<vector<string>>& values)
//{
//	try {
//		mysqlx::TableInsert inserter = m_session->getDefaultSchema().getTable(table).insert(columns);
//
//		for (const auto& value : values) {
//			inserter.values(value);
//		}
//
//		inserter.execute();
//		return true;
//	}
//	catch (sql::SQLException& e) {
//		cerr << "Insert failed: " << e.what() << endl;
//		return false;
//	}
//	catch (...) {
//		cerr << "Unknown exception occurred in insert()" << endl;
//		return false;
//	}
//}
//
//bool MysqlClient::update(const string& table, const vector<string>& columns, const vector<string>& values, const string& where)
//{
//	try {
//		mysqlx::TableUpdate updater = m_session->getDefaultSchema().getTable(table).update();
//
//		for (int i = 0; i < columns.size(); ++i) {
//			updater.set(columns[i], values[i]);
//		}
//
//		if (!where.empty()) {
//			updater.where(where);
//		}
//
//		updater.execute();
//		return true;
//	}
//	catch (sql::SQLException& e) {
//		cerr << "Update failed: " << e.what() << endl;
//		return false;
//	}
//	catch (...) {
//		cerr << "Unknown exception occurred in update()" << endl;
//		return false;
//	}
//}
//
//bool MysqlClient::remove(const string& table, const string& where)
//{
//	try {
//		mysqlx::TableDelete deleter = m_session->getDefaultSchema().getTable(table).remove();
//
//		if (!where.empty()) {
//			deleter.where(where);
//		}
//
//		deleter.execute();
//		return true;
//	}
//	catch (sql::SQLException& e) {
//		cerr << "Delete failed: " << e.what() << endl;
//		return false;
//	}
//	catch (...) {
//		cerr << "Unknown exception occurred in remove()" << endl;
//		return false;
//	}
//}
